<?php

namespace app\admin\controller;

use think\Db;
class UserA extends AdminController
{
    public function index()
    {
        return view('admin@user/tables');
    }

    public function select()
    {


        //查询数据
            $list = Db::name('user')->select();
            
            $arr = array(); //声明一个空数组
            //遍历用户信息
            foreach($list as $v){
                $role_ids = Db::name('user_role')->field('rid')->where(array('uid'=>array('eq',$v['id'])))->select();
                // dump($role_ids);
                //定义空数组
                $roles = array();
                //遍历
                foreach($role_ids as $value){
                    $roles[] = Db::name('role')->where(array('id'=>array('eq',$value['rid']),'status'=>array('eq',1)))->value('name');
                }
                $v['role'] = $roles; //将新得到角色信息放置到$v中               
                $arr[] = $v;
            }
            // var_dump($arr);die;
        // $list = Db::name('user')->paginate(3);
        // $row = Db::field('u.name , ur.rid')
        //    ->table(['lamp_user'=>'u', 'lamp_user_role'=>'ur'])
        //    ->where('u.id = ur.uid')
        //    ->select();

        // $this->assign("list",$arr);
        
        return view('admin@user/index',['list'=>$arr]);
    }

    public function add()
    {
        return view('admin@user/add');
    }

    public function doadd()
    {

//        dump(input('post.'));exit;
//        $p = $request->post();
        // $p = Request::instance()->post();
        // $p = input('post.');
//        var_dump($p);
        if(input('post.pwd') ==input('post.repwd') ) {

            $data = [
                'name' => input('post.name'),
                'username' => input('post.username'),
                'userpass' => md5(input('post.pwd')),

            ];

//        var_dump($data);exit;
            $result = Db::name('user')->data($data)->insert();
//            dump($result);exit;
            if ($result > 0) {
                return $this->success('添加成功', url('admin/UserA/select'));
            } else {
                return $this->error('添加失败');
            }
        }else{return $this->error('两次密码不一致');}
    }

    public function del($id)
    {
//        dump($_GET);exit;
//        dump(input('get.id'));exit;
        $result = Db::name('user')->delete($id);
        if ($result > 0) {
            return $this->success('删除成功');
        } else {
            return $this->error('删除失败');
        }
    }

    public function update($id)
    {
        $date = Db::name('user')->field('userpass', true)->find($id);
//        dump($date);exit;
        return view('admin@user/update',['date'=> $date]);
        
    }

    public function doupdate($id)
    {
//        dump(input('post.'));
        if(input('post.pwd') == null){
            $data = [
                'name' => input('post.name'),
                'username' => input('post.username'),

            ];
        }else{
            $data = [
                'name' => input('post.name'),
                'username' => input('post.username'),
                'userpass' => md5(input('post.pwd')),
            ];
        }

//        dump($data);exit;

        $result = Db::name('user')->where('id',$id)->update($data);

        if ($result) {
            return $this->success('编辑成功',url('admin/UserA/select'));
        } else {
            return $this->error('编辑失败');
        }


    }

    public function role($id)
    {
         
          // 用户名
        $rolename = Db::field('id, username')
            ->name('user')
            ->where('id', 'eq', $id)
            ->find();
        // dump($rolename);die;

        // 查询角色信息
        $query = Db::name('role')->select();
        // 获取当前用户的角色信息
        $data = Db::name('user_role')->where('uid', 'eq', $id)->select();
        
        $myrole = array();
        foreach ($data as $key => $value) {
            $myrole[] = $value['rid'];
        }
        // dump($myrole);die;
        //分配用户信息
        $this->assign("rolename",$rolename);
        //分配当前用户信息
        $this->assign('users',$query);
        //分配该用户的角色信息
        $this->assign('role',$myrole);
        return view('admin@user/role');

    }

    public function dorole()
    {
        // dump(input('post.'));exit;
        //判读必须选择一个角色
            if(empty($_POST['cc'])){
                $this->error("请选择一个角色！");
            }

            $uid = $_POST['uid'];
         
            //清除用户所有的角色信息，避免重复添加
            Db::name('user_role')->where('uid', 'eq', $uid)->delete();
           
           // var_dump($_POST['cc']);die;
    
            foreach($_POST['cc'] as $v){
                $data['uid'] = $uid;
                $data['rid'] = $v;
                //执行添加
                // $this->_user_role->data($data)->add();
                $date = Db::name('user_role')->data($data)->insert();
                // var_dump($date);die;
            }

           if ($date) {
            return $this->success('角色添加成功',url('admin/UserA/select'));
            } else {
                return $this->error('角色添加失败');
            }
    }

}